package com.incross.dawin.util;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

import com.incross.dawin.DawinConfig;

public class BKLog {
	public static final String NameTag = "BenTag";
	private static boolean isDebugMode = DawinConfig.isDebugMode;
	
	public static String getMemoryState()
	{
		Runtime rt = Runtime.getRuntime();
		return "[F_" + (int)rt.freeMemory()/1024 + "/" + (int)rt.totalMemory()/1024 + "]";
	}

	public static void e(String msg) {
		if (isDebugMode) {
			Log.e(NameTag, msg);
		}
	}

	public static void e(String msg, Exception ex) {
		if (isDebugMode) {
			Log.e(NameTag, msg, ex);
		}
	}

	public static void e(String tag, String msg) {
		if (isDebugMode) {
			Log.e(tag, msg);
		}
	}

	public static void e(String className, String errorMessage, Exception e) {
		if (isDebugMode) {
			Log.e(NameTag, "[" + className + "] " + errorMessage, e);
		}
	}

	public static void i(String msg) {
		if (isDebugMode) {
			Log.i(NameTag, msg);
		}
	}

	public static void i(String tag, String msg) {
		if (isDebugMode) {
			Log.i(tag, msg);
		}
	}

	public static void d(String tag, String msg) {
		if (isDebugMode) {
			Log.d(tag, getMemoryState() + " - " + msg);
		}
	}

	public static void d(String msg) {
		if (isDebugMode) {
			Log.d(NameTag, getMemoryState() + " - " + msg);
		}
	}

	public static void v(String msg) {
		if (isDebugMode) {
			Log.v(NameTag, getMemoryState() + " - " + msg);
		}
	}

	public static void v(String tag, String msg) {
		if (isDebugMode) {
			Log.v(tag, msg);
		}
	}
	
	public static void w(String tag, String msg) {
		if (isDebugMode) {
			Log.w(tag, msg);
		}
	}
	
	public static void w(String msg) {
		if (isDebugMode) {
			Log.w(NameTag, getMemoryState() + " - " + msg);
		}
	}

	public static String getStackTraceString(Throwable tr) {
		if (isDebugMode) {
			return Log.getStackTraceString(tr);
		}

		return "";
	}

	public static void debugToast(Context context, String msg) {
		if (isDebugMode) {
			Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
		}
	}
}